www.gusucode.com > Supernice PHP轻型社交圈系统 v1.5PHP源码程序 > Supernice PHP轻型社交圈系统 v1.5/Supernice_v1.5/Supernice_v1.5/theme/script/admin.js
(function(c){var b="Yuurupload";var d={url:document.URL,method:"POST",extraData:{},maxFileSize:0,allowedTypes:"*",extFilter:null,dataType:null,fileName:"file",onInit:function(){},onFallbackMode:function(){message},onNewFile:function(g,f){},onBeforeUpload:function(f){},onComplete:function(){},onUploadProgress:function(g,f){},onUploadSuccess:function(g,f){},onUploadError:function(g,f){},onFileTypeError:function(f){},onFileSizeError:function(f){},onFileExtError:function(f){}};var a=function(g,f){this.element=c(g);this.settings=c.extend({},d,f);if(!this.checkBrowser()){return false}this.init();return true};a.prototype.checkBrowser=function(){if(window.FormData===undefined){this.settings.onFallbackMode.call(this.element,"Browser doesn't support From API");return false}if(this.element.find("input[type=file]").length>0){return true}if(!this.checkEvent("drop",this.element)||!this.checkEvent("dragstart",this.element)){this.settings.onFallbackMode.call(this.element,"Browser doesn't support Ajax Drag and Drop");return false}return true};a.prototype.checkEvent=function(f,h){var h=h||document.createElement("div");var f="on"+f;var g=f in h;if(!g){if(!h.setAttribute){h=document.createElement("div")}if(h.setAttribute&&h.removeAttribute){h.setAttribute(f,"");g=typeof h[f]=="function";if(typeof h[f]!="undefined"){h[f]=undefined}h.removeAttribute(f)}}h=null;return g};a.prototype.init=function(){var f=this;f.queue=new Array();f.queuePos=-1;f.queueRunning=false;f.element.on("drop",function(g){g.preventDefault();var h=g.originalEvent.dataTransfer.files;f.queueFiles(h)});f.element.find("input[type=file]").on("change",function(g){var h=g.target.files;f.queueFiles(h);c(this).val("")});this.settings.onInit.call(this.element)};a.prototype.queueFiles=function(m){var g=this.queue.length;for(var k=0;k<m.length;k++){var h=m[k];if((this.settings.maxFileSize>0)&&(h.size>this.settings.maxFileSize)){this.settings.onFileSizeError.call(this.element,h);continue}if((this.settings.allowedTypes!="*")&&!h.type.match(this.settings.allowedTypes)){this.settings.onFileTypeError.call(this.element,h);continue}if(this.settings.extFilter!=null){var n=this.settings.extFilter.toLowerCase().split(";");var l=h.name.toLowerCase().split(".").pop();if(c.inArray(l,n)<0){this.settings.onFileExtError.call(this.element,h);continue}}this.queue.push(h);var f=this.queue.length-1;this.settings.onNewFile.call(this.element,f,h)}if(this.queueRunning){return false}if(this.queue.length==g){return false}this.processQueue();return true};a.prototype.processQueue=function(){var h=this;h.queuePos++;if(h.queuePos>=h.queue.length){h.settings.onComplete.call(h.element);h.queuePos=(h.queue.length-1);h.queueRunning=false;return}var g=h.queue[h.queuePos];var f=new FormData();f.append(h.settings.fileName,g);c.each(h.settings.extraData,function(i,j){f.append(i,j)});h.settings.onBeforeUpload.call(h.element,h.queuePos);h.queueRunning=true;c.ajax({url:h.settings.url,type:h.settings.method,dataType:h.settings.dataType,data:f,cache:false,contentType:false,processData:false,forceSync:false,xhr:function(){var i=c.ajaxSettings.xhr();if(i.upload){i.upload.addEventListener("progress",function(m){var l=0;var j=m.loaded||m.position;var k=m.total||e.totalSize;if(m.lengthComputable){l=Math.ceil(j/k*100)}h.settings.onUploadProgress.call(h.element,h.queuePos,l)},false)}return i},success:function(j,i,k){h.settings.onUploadSuccess.call(h.element,h.queuePos,j)},error:function(k,i,j){h.settings.onUploadError.call(h.element,h.queuePos,j)},complete:function(i,j){h.processQueue()}})};c.fn.Yuurupload=function(f){return this.each(function(){if(!c.data(this,b)){c.data(this,b,new a(this,f))}})};c(document).on("dragenter",function(f){f.stopPropagation();f.preventDefault()});c(document).on("dragover",function(f){f.stopPropagation();f.preventDefault()});c(document).on("drop",function(f){f.stopPropagation();f.preventDefault()})})(jQuery); $(function(){ function add_file(id, file){ var template = '' + '<div class="file" style="margin-top:30px;width:100%;position:relative;margin-bottom:20px;" id="uploadFile' + id + '">' + '<div class="bar" style="height:5px;background-color:#f8f8f8;position: absolute;left:0;top: 0;right: 0;">' + '<div class="progress" style="height:5px;background-color:#37a;" style="width:0%"></div>' + '</div>' + '</div>'; $('#upload-speed').prepend(template); } function update_file_progress(id, percent){ $('#uploadFile' + id).find('div.progress').width(percent); } $('#upload-avatar').Yuurupload({ url: Path+'?app=user&action=avatar', maxFileSize: 1024000, dataType: 'json', allowedTypes: 'image/*', extFilter: 'jpg', onNewFile: function(id, file){ add_file(id, file); }, onUploadProgress: function(id, percent){ var percentStr = percent + '%'; update_file_progress(id, percentStr); }, onUploadSuccess: function(id, data){ update_file_progress(id, '100%'); $('#upload-speed').fadeOut(1000); alert("上传成功!"); $('#images-avatar').find('img').attr("src",data.message); }, onFileTypeError: function(file){ alert("图片格式不支持"); }, onFileSizeError: function(file){ alert('文件不能超过1M'); }, onFallbackMode: function(message){ alert('您的浏览器版本过旧,建议使用谷歌浏览器'); } }); $('#upload-bg').Yuurupload({ url: Path+'?app=user&action=setbg', maxFileSize: 2126000, dataType: 'json', allowedTypes: 'image/*', extFilter: 'jpg', onNewFile: function(id, file){ add_file(id, file); }, onUploadProgress: function(id, percent){ var percentStr = percent + '%'; update_file_progress(id, percentStr); }, onUploadSuccess: function(id, data){ update_file_progress(id, '100%'); $('#upload-speed').fadeOut(1000); alert("主页封面上传成功!"); }, onFileTypeError: function(file){ alert("图片格式不支持"); }, onFileSizeError: function(file){ alert('文件不能超过1M'); }, onFallbackMode: function(message){ alert('您的浏览器版本过旧,建议使用谷歌浏览器'); } }); });